#ifndef GUARD_HOLD_EFFECTS_H
#define GUARD_HOLD_EFFECTS_H

enum ItemHoldEffect
{
    HOLD_EFFECT_NONE,
    HOLD_EFFECT_RESTORE_HP,
    HOLD_EFFECT_CURE_PAR,
    HOLD_EFFECT_CURE_SLP,
    HOLD_EFFECT_CURE_PSN,
    HOLD_EFFECT_CURE_BRN,
    HOLD_EFFECT_CURE_FRZ,
    HOLD_EFFECT_RESTORE_PP,
    HOLD_EFFECT_CURE_CONFUSION,
    HOLD_EFFECT_CURE_STATUS,
    HOLD_EFFECT_CONFUSE_SPICY,
    HOLD_EFFECT_CONFUSE_DRY,
    HOLD_EFFECT_CONFUSE_SWEET,
    HOLD_EFFECT_CONFUSE_BITTER,
    HOLD_EFFECT_CONFUSE_SOUR,
    HOLD_EFFECT_ATTACK_UP,
    HOLD_EFFECT_DEFENSE_UP,
    HOLD_EFFECT_SPEED_UP,
    HOLD_EFFECT_SP_ATTACK_UP,
    HOLD_EFFECT_SP_DEFENSE_UP,
    HOLD_EFFECT_CRITICAL_UP,
    HOLD_EFFECT_RANDOM_STAT_UP,
    HOLD_EFFECT_EVASION_UP,
    HOLD_EFFECT_WHITE_HERB,
    HOLD_EFFECT_MACHO_BRACE,
    HOLD_EFFECT_EXP_SHARE,
    HOLD_EFFECT_QUICK_CLAW,
    HOLD_EFFECT_FRIENDSHIP_UP,
    HOLD_EFFECT_MENTAL_HERB,
    HOLD_EFFECT_CHOICE_BAND,
    HOLD_EFFECT_FLINCH,
    HOLD_EFFECT_DOUBLE_PRIZE,
    HOLD_EFFECT_REPEL,
    HOLD_EFFECT_SOUL_DEW,
    HOLD_EFFECT_DEEP_SEA_TOOTH,
    HOLD_EFFECT_DEEP_SEA_SCALE,
    HOLD_EFFECT_CAN_ALWAYS_RUN,
    HOLD_EFFECT_PREVENT_EVOLVE,
    HOLD_EFFECT_FOCUS_BAND,
    HOLD_EFFECT_LUCKY_EGG,
    HOLD_EFFECT_SCOPE_LENS,
    HOLD_EFFECT_LEFTOVERS,
    HOLD_EFFECT_DRAGON_SCALE,
    HOLD_EFFECT_LIGHT_BALL,
    HOLD_EFFECT_TYPE_POWER,
    HOLD_EFFECT_UPGRADE,
    HOLD_EFFECT_SHELL_BELL,
    HOLD_EFFECT_LUCKY_PUNCH,
    HOLD_EFFECT_METAL_POWDER,
    HOLD_EFFECT_THICK_CLUB,
    HOLD_EFFECT_LEEK,
    // Gen4 hold effects.
    HOLD_EFFECT_CHOICE_SCARF,
    HOLD_EFFECT_CHOICE_SPECS,
    HOLD_EFFECT_DAMP_ROCK,
    HOLD_EFFECT_GRIP_CLAW,
    HOLD_EFFECT_HEAT_ROCK,
    HOLD_EFFECT_ICY_ROCK,
    HOLD_EFFECT_LIGHT_CLAY,
    HOLD_EFFECT_SMOOTH_ROCK,
    HOLD_EFFECT_POWER_HERB,
    HOLD_EFFECT_BIG_ROOT,
    HOLD_EFFECT_EXPERT_BELT,
    HOLD_EFFECT_LIFE_ORB,
    HOLD_EFFECT_METRONOME,
    HOLD_EFFECT_MUSCLE_BAND,
    HOLD_EFFECT_WIDE_LENS,
    HOLD_EFFECT_WISE_GLASSES,
    HOLD_EFFECT_ZOOM_LENS,
    HOLD_EFFECT_LAGGING_TAIL,
    HOLD_EFFECT_FOCUS_SASH,
    HOLD_EFFECT_FLAME_ORB,
    HOLD_EFFECT_TOXIC_ORB,
    HOLD_EFFECT_STICKY_BARB,
    HOLD_EFFECT_IRON_BALL,
    HOLD_EFFECT_BLACK_SLUDGE,
    HOLD_EFFECT_DESTINY_KNOT,
    HOLD_EFFECT_SHED_SHELL,
    HOLD_EFFECT_QUICK_POWDER,
    HOLD_EFFECT_ADAMANT_ORB,
    HOLD_EFFECT_LUSTROUS_ORB,
    HOLD_EFFECT_GRISEOUS_ORB,
    HOLD_EFFECT_ENIGMA_BERRY,
    HOLD_EFFECT_RESIST_BERRY,
    HOLD_EFFECT_POWER_ITEM,
    HOLD_EFFECT_RESTORE_PCT_HP,
    HOLD_EFFECT_MICLE_BERRY,
    HOLD_EFFECT_CUSTAP_BERRY,
    HOLD_EFFECT_JABOCA_BERRY,
    HOLD_EFFECT_ROWAP_BERRY,
    HOLD_EFFECT_KEE_BERRY,
    HOLD_EFFECT_MARANGA_BERRY,
    HOLD_EFFECT_PLATE,
    // Gen5 hold effects
    HOLD_EFFECT_FLOAT_STONE,
    HOLD_EFFECT_EVIOLITE,
    HOLD_EFFECT_ASSAULT_VEST,
    HOLD_EFFECT_DRIVE,
    HOLD_EFFECT_GEMS,
    HOLD_EFFECT_ROCKY_HELMET,
    HOLD_EFFECT_AIR_BALLOON,
    HOLD_EFFECT_RED_CARD,
    HOLD_EFFECT_RING_TARGET,
    HOLD_EFFECT_BINDING_BAND,
    HOLD_EFFECT_EJECT_BUTTON,
    HOLD_EFFECT_ABSORB_BULB,
    HOLD_EFFECT_CELL_BATTERY,
    // Gen6 hold effects
    HOLD_EFFECT_MEGA_STONE,
    HOLD_EFFECT_SAFETY_GOGGLES,
    HOLD_EFFECT_LUMINOUS_MOSS,
    HOLD_EFFECT_SNOWBALL,
    HOLD_EFFECT_WEAKNESS_POLICY,
    HOLD_EFFECT_PRIMAL_ORB,
    // Gen7 hold effects
    HOLD_EFFECT_PROTECTIVE_PADS,
    HOLD_EFFECT_TERRAIN_EXTENDER,
    HOLD_EFFECT_SEEDS,
    HOLD_EFFECT_ADRENALINE_ORB,
    HOLD_EFFECT_MEMORY,
    HOLD_EFFECT_Z_CRYSTAL,
    // Gen8 hold effects
    HOLD_EFFECT_UTILITY_UMBRELLA,
    HOLD_EFFECT_EJECT_PACK,
    HOLD_EFFECT_ROOM_SERVICE,
    HOLD_EFFECT_BLUNDER_POLICY,
    HOLD_EFFECT_HEAVY_DUTY_BOOTS,
    HOLD_EFFECT_THROAT_SPRAY,
    // Gen9 hold effects
    HOLD_EFFECT_ABILITY_SHIELD,
    HOLD_EFFECT_CLEAR_AMULET,
    HOLD_EFFECT_MIRROR_HERB,
    HOLD_EFFECT_PUNCHING_GLOVE,
    HOLD_EFFECT_COVERT_CLOAK,
    HOLD_EFFECT_LOADED_DICE,
    HOLD_EFFECT_BOOSTER_ENERGY,
    HOLD_EFFECT_OGERPON_MASK,
    // Gen2 hold effect
    HOLD_EFFECT_BERSERK_GENE,
    HOLD_EFFECT_COUNT
};

// Terrain seed params
#define HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN  0
#define HOLD_EFFECT_PARAM_GRASSY_TERRAIN    1
#define HOLD_EFFECT_PARAM_MISTY_TERRAIN     2
#define HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN   3

#endif // GUARD_HOLD_EFFECTS_H
